<?php
require_once 'Banco.php';
require_once 'DAO/DAOEventos.php';
require_once 'Model/EventoRepublica.php';
require_once 'Model/LoteEventoRepublica.php';
class DAOLoteEventoRepublica extends Banco{
    
    function getLotes($codigoEventoRepublica) {
        $lotes = array();
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT LER_CODIGO, LER_CODEVENTOREPUBLICA, LER_NUMERO, LER_QUANTIDADE, LER_VALORHOMEM, LER_VALORMULHER, LER_DATAINICIO, LER_DATAFIM FROM TB_LOTEEVENTOREPUBLICA WHERE LER_CODEVENTOREPUBLICA = ?")) {
            $sql->bind_param('i',$codigoEventoRepublica);
            $sql->execute();
            $sql->bind_result($codigo, $evento, $numero, $quantia, $valorhomem, $valormulher, $datainicio, $datafim);
            while ($sql->fetch()) {
                $lote = new LoteEventoRepublica();
                $de = new DAOEventoRepublica();
                $lote->setCodigo($codigo);
                $lote->setDataFim($datafim);
                $lote->setDataInicio($datainicio);
                $lote->setEventoRepublica($de->getEvento($evento));//Tem chance daqui dar problema
                $lote->setNumero($numero);
                $lote->setQuantidade($quantia);
                $lote->setValorHomem($valorhomem);
                $lote->setValorMulher($valormulher);
                $lotes[]=(object)$lote;
            }
            $sql->close();
        }
        $banco->close();
        return $lotes;
    }
    function getLote($codigoLote) {
        $lote = null;
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT LER_CODIGO, LER_CODEVENTOREPUBLICA, LER_NUMERO, LER_QUANTIDADE, LER_VALORHOMEM, LER_VALORMULHER, LER_DATAINICIO, LER_DATAFIM FROM TB_LOTEEVENTOREPUBLICA WHERE LER_CODIGO = ?")) {
            $sql->bind_param('i',$codigoLote);
            $sql->execute();
            $sql->bind_result($codigo, $evento, $numero, $quantia, $valorhomem, $valormulher, $datainicio, $datafim);
            while ($sql->fetch()) {
                $lote = new LoteEventoRepublica();
                $de = new DAOEventoRepublica();
                $lote->setCodigo($codigo);
                $lote->setDataFim($datafim);
                $lote->setDataInicio($datainicio);
                $lote->setEventoRepublica($de->getEvento($evento));//Tem chance daqui dar problema
                $lote->setNumero($numero);
                $lote->setQuantidade($quantia);
                $lote->setValorHomem($valorhomem);
                $lote->setValorMulher($valormulher);
            }
            $sql->close();
        }
        $banco->close();
        return $lote;
    }
    
    function addLote(LoteEventoRepublica $lote) {
        Banco::conecta();
        $banco = Banco::getBanco();
        if(is_a($lote->getEventoRepublica(), 'EventoRepublica')){
            $evento = $lote->getEventoRepublica()->getCodigo();
        }else{
            $evento = NULL;
        }
        $numero = $lote->getNumero();
        $dataFim = $lote->getDataFim();
        $dataInicio = $lote->getDataInicio();
        $quantidade = $lote->getQuantidade();
        $vlrHomem = $lote->getValorHomem();
        $vlrMulher = $lote->getValorMulher();
        if($sql = $banco->prepare("INSERT INTO TB_LOTEEVENTOREPUBLICA VALUES (DEFAULT, ?, ?, ?, ?, ?, ?, ?);")){
            $sql->bind_param('iiiddss',$evento,$numero,$quantidade,$vlrHomem,$vlrMulher,$dataInicio,$dataFim);
            $sql->execute();
            $sql->close();
        }
        $banco->close();
    }
    
    function updateLote(LoteEventoRepublica $lote) {
        Banco::conecta();
        $banco = Banco::getBanco();
        if (is_a($lote->getEventoRepublica(), 'EventoRepublica')) {
            if ($this->getLote($lote->getCodigo())==NULL) {
                $this->addLote($lote);
            } else {
                $codigo = $lote->getCodigo();
                $quantidade = $lote->getQuantidade();
                $vlrHomem = $lote->getValorHomem();
                $vlrMulher = $lote->getValorMulher();
                $numero = $lote->getNumero();
                if ($sql = $banco->prepare("UPDATE TB_LOTEEVENTOREPUBLICA SET LER_VALORHOMEM=?, LER_VALORMULHER=?, LER_QUANTIDADE=? WHERE LER_CODIGO=? AND LER_NUMERO=?;")) {
                    $sql->bind_param('iiiii', $vlrHomem, $vlrMulher, $quantidade, $codigo, $numero);
                    $sql->execute();
                    $sql->close();
                }
                $banco->close();
            }
        }
    }
    
}

?>
